package com.efesco.employee.timerSms.sms;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Calendar;
import java.util.Date;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.efesco.smssvr.model.ArrayOfSmsModel;
import com.efesco.smssvr.model.SmsBatchModel;
import com.efesco.smssvr.model.SmsModel;
import com.efesco.smssvr.SmsSender;


public class AccountSendSms {
	private final Log logger = LogFactory.getLog(AccountSendSms.class);
	
//	private ITimerSmsService service;
//
//	public void setService(ITimerSmsService service) {
//		this.service = service;
//	}

	private String getERRO(Exception e){
		String str="";
		try{
            StringWriter sw = new StringWriter();  
            e.printStackTrace(new PrintWriter(sw, true));  
            str = sw.toString(); 	
		}catch(Exception e1){
			str=e.toString();
//			log.error("getERRO:"+e1.toString());
		}
		return str;
	}
	
public static void main(String[] args){
	AccountSendSms accountSendSms=new AccountSendSms();
	accountSendSms.sendSmsBatch();
}

	public void sendSmsBatch(){
		logger.info("#####是否运行短信收集任务!!#####");
		logger.info("#####sendSmsBatch!!#####");
		
//		SendSmsBatchSpModel spModel=new SendSmsBatchSpModel();
//		
//		SendSmsBatchSrModel srModel = service.sendSmsBatch(spModel);
		
		

				try
				{
					
					//创建短信服务对象
					SmsSender sender = SmsSender.getSingleInstance();	
					//短信任务对象
					SmsBatchModel smsbat = new SmsBatchModel();
		  		//允许重发次数，主信息内容中的allow_retry_cnt
					smsbat.setAllow_retry_cnt(new Integer(1)); 
		  		//启动发送时间，主信息内容中的begin_send_date
					Calendar cal=Calendar.getInstance();
					cal.setTime(new Date());
					smsbat.setBegin_send_date(cal); 
		  		//最晚发送时间，主信息内容中的end_send_date
//					Calendar cal1=Calendar.getInstance();
//					cal1.setTime(snFsEmpAccCollectCfgs[i].getEndSendDate());
//					smsbat.setEnd_send_date(cal1); 
		  		//来源业务类别，主信息内容中的BIZ_TYPE
					smsbat.setBiz_type("calcnt");
		  		//是否邮件反馈结果，1是，0否，主信息内容中的is_mail
					smsbat.setIs_mail("0");
		  		//发送人邮箱，主信息内容中的send_user_email
					smsbat.setSend_user_email("aaa@aaa.com");
		  		//发送人姓名，主信息内容中的send_user_name
					smsbat.setSend_user_name("张三");
		  		//发送人ID，主信息内容中的send_user
					smsbat.setSend_user("1234");
		  		//发送部门ID，主信息内容中的send_depts
					smsbat.setSend_depts("50");
		  		//发送部门名称，主信息内容中的send_depts_name
					smsbat.setSend_depts_name("呼叫中心");
		  		//备注，主信息内容中的fremarks
					smsbat.setFremarks("备注信息");
		  		//短信数量
					
					
					

							int a = 1; 
							//创建短信数组
							SmsModel[] smsarr = new SmsModel[a];
							for(int j=0;j<a;j++)
							{
								logger.info("创建短信数组.........");
								
								
								//短信对象
								SmsModel sms = new SmsModel();
								//手机号，明细信息中的mp				
								sms.setMp("13636445902");
								
								logger.info("短信的手机号："+"13636445902");
								
								//短信内容，明细信息中的content
								sms.setContent("TEST测试");
								
								logger.info("内容："+"TEST测试");
								
								//接收者ID，明细信息中的rcv_id
								sms.setRcv_id("13636445902");
								
								logger.info("接收者ID，明细信息中的rcv_id："+"222222");
								
								
								//接收者类别，明细信息中的rcv_type
								sms.setRcv_type("EMP");
								
								logger.info("接收者类别，明细信息中的rcv_type："+"EMP");
								
								//接受者所属客户组编号，明细信息中的comp_grp_code
//								sms.setComp_grp_code("11");
								
								logger.info("接受者所属客户组编号，明细信息中的comp_grp_code："+"11");
								
								//接受者所属客户编号，明细信息中的company_no
//								sms.setCompany_no("11");
								
								logger.info("接受者所属客户编号，明细信息中的company_no："+"11");
								
								
								//接受者所属业务部ID，明细信息中的dept_no
//								sms.setDept_no("02");
								
								logger.info("接受者所属业务部ID，明细信息中的dept_no："+"02");
								
								//放入短信数组
								smsarr[j] = sms;
							} 
								
								logger.info("短信数组长度："+smsarr.length);
								
								
					  			//创建短信数组包装类对象

								ArrayOfSmsModel smslst = new ArrayOfSmsModel();
								//将短信数组放入包装类对象
								smslst.setSmsModel(smsarr); 
								//将短信数组包装类对象放入短信任务对象
								smsbat.setSmslist(smslst); 
								
								//调用接口发送

								long batno = sender.sendSmsBatch(smsbat);
								
								logger.info("发送短信返回的接口："+batno);
								
//								for(int j=0;j<a;j++)
//								{
//									UpdateFsEmpToCollectSpModel spModel1=new UpdateFsEmpToCollectSpModel();
//									spModel1.setCollectNo(detailContents[j].getCollectNo());
//									service.updateFsEmpToCollect(spModel1);
//								}
								

				
				}
				catch(Exception e)
				{
//					ProcedureErrorLogSpModel spModel2=new ProcedureErrorLogSpModel();
//					spModel2.setProName("帐号收集短信");
//					spModel2.setErrorCode("");
//					if(e.getMessage().length()<=1000){
//						spModel2.setErrorDesc(e.getMessage());
//					}else{
//						spModel2.setErrorDesc(e.getMessage().substring(0,1000));
//					}
//					
//					service.insertProcedureErrorLog(spModel2);
//					//异常处理
					logger.info("异常信息："+e.getMessage());
					System.out.println(getERRO(e));
				}


		
	}
}
